﻿#region Using Statements

using Microsoft.Xna.Framework;

#endregion

namespace HumanElement.Xna
{
    public interface IPhysical : ITranslate, IName
    {
    }

    public interface ITranslate : IPosition, IScale, IRotation
    {
        /// <summary>
        /// Gets the world matrix.
        /// </summary>
        /// <value>The world matrix.</value>
        Matrix WorldMatrix { get; set; }
    }

    public interface IPosition
    {
        /// <summary>
        /// Gets the position.
        /// </summary>
        /// <value>The position.</value>
        Vector3 Position { get; set; }

        /// <summary>
        /// Gets up.
        /// </summary>
        /// <value>Up.</value>
        Vector3 Up { get; set; }

        /// <summary>
        /// Gets the right.
        /// </summary>
        /// <value>The right.</value>
        Vector3 Forward { get; set; }
    }

    public interface IScale
    {
        /// <summary>
        /// Gets the scale.
        /// </summary>
        /// <value>The scale.</value>
        Vector3 Scale { get; set; }
    }

    public interface IRotation
    {
        /// <summary>
        /// Gets the rotation.
        /// </summary>
        /// <value>The rotation.</value>
        Quaternion Rotation { get; set; }
    }
}